package com.turing.post.cardmanagement.util;

import java.math.BigInteger;
import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 制卡控制逻辑业务实现
 * 
 * @author YangShuo
 * 
 */
@Remote
@Local
public interface MakeCardControlBusiness {
	/**
	 * 产生制卡批次号方法
	 * 
	 * @param MakeCardApproval
	 *            申请ID
	 */
	// public String creatBatchno(BigInteger MakeCardApplyForId) throws
	// PCPSApplicationException;

	/**
	 * 制卡方法，传入已批准的制卡申请id
	 * 
	 * @param MakeCardApproval
	 *            申请ID
	 */
	public void makeCard(PCPSWebInput webInput, BigInteger MakeCardApplyForId)
			throws PCPSApplicationException;

	/**
	 * 下载制卡文件方法
	 * 
	 * @param userid
	 *            操作员
	 * @param Batchno
	 *            批次号
	 */
	public byte[] downFile(PCPSWebInput webInput, BigInteger userid,
			String Batchno) throws PCPSApplicationException;

	/**
	 * 产生cvn校验码
	 * 
	 * @cardinfo 卡信息
	 */
	public String getCVNByCardInfo(String cardinfo)
			throws PCPSApplicationException;

	/**
	 *检查已入库张数，不足将状态置为部分入库，否则置为制卡成功，已入库
	 * 
	 * @param Batchno
	 *            批次号
	 */
	public void checkAlreadyInStockCount(Integer count, String Batchno)
			throws PCPSApplicationException;

}
